using PhraseCorrector.Common;
using PhraseCorrector.DirectTanslate;
using System;
using System.Diagnostics;

namespace PhraseCorrector.Init {
    /**
     * 加载库
     */
    internal class LoadLibraries
    {

        #region 初始化字典
        // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 初始化加载库
        /// </summary>
        public LoadLibraries() {
            // 实例化嵌入的静态字典
            InitEmbDictionary();
            // 初始化翻译字典
            InitTranslateDictionary();
            // 初始化拼音字典
            InitSpellDictionary();
            new PinyinTranslator();
            InitEnded();
        }

        // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 获取英汉频率字典
        /// </summary>
        /// <remarks>
        /// 此方法用于初始化英汉频率字典
        /// </remarks>
        public void InitEmbDictionary()
        {
            // 实例化嵌入的静态字典
            new EmbeddedResources();
            Display("静态字典...ok");
        }

        // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 获取英汉拼频率基础字典
        /// </summary>
        /// <remarks>
        /// 此方法用于初始化英汉频率字典
        /// </remarks>
        public void InitSpellDictionary()
        {
            new PinyinTranslator();
             Display("生成拼音字典...ok");
       }

        // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 初始化翻译字典的方法
        /// </summary>
        public void InitTranslateDictionary() {
            // 加载通用字典数据
            using var ecDic = new English_Chinese_Dictionary();
            Display("中/西文字典...ok");
        }

        // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////        
        /// <summary>
        /// 初始化结束时调用的方法。
        /// </summary>
        public void InitEnded()
        {
            // 显示字典加载完成的信息。
            Display("字典装载完毕.\n\n");
        }

        // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// 显示给定的文字信息。
        /// </summary>
        /// <param name="text">要显示的文字内容。</param>
        private void Display(string text)
        {
            // 记录日志信息。
            Logger.Log.Information(text);
        }
        #endregion

    }
}
